13 research outputs found
Theory and Techniques for Synthesizing a Family of Graph Algorithms
Although Breadth-First Search (BFS) has several advantages over Depth-First
Search (DFS) its prohibitive space requirements have meant that algorithm
designers often pass it over in favor of DFS. To address this shortcoming, we
introduce a theory of Efficient BFS (EBFS) along with a simple recursive
program schema for carrying out the search. The theory is based on dominance
relations, a long standing technique from the field of search algorithms. We
show how the theory can be used to systematically derive solutions to two graph
algorithms, namely the Single Source Shortest Path problem and the Minimum
Spanning Tree problem. The solutions are found by making small systematic
changes to the derivation, revealing the connections between the two problems
which are often obscured in textbook presentations of them.Comment: In Proceedings SYNT 2012, arXiv:1207.055
Synthesis of Greedy Algorithms Using Dominance Relations
Greedy algorithms exploit problem structure and constraints to achieve linear-time performance. Yet there is still no completely satisfactory way of constructing greedy algorithms. For example, the Greedy Algorithm of Edmonds depends upon translating a problem into an algebraic structure called a matroid, but the existence of such a translation can be as hard to determine as the existence of a greedy algorithm itself. An alternative characterization of greedy algorithms is in terms of dominance relations, a well-known algorithmic technique used to prune search spaces. We demonstrate a process by which dominance relations can be methodically derived for a number of greedy algorithms, including activity selection, and prefix-free codes. By incorporating our approach into an existing framework for algorithm synthesis, we demonstrate that it could be the basis for an effective engineering method for greedy algorithms. We also compare our approach with other characterizations of greedy algorithms
Tactical Synthesis Of Efficient Global Search Algorithms
Algorithm synthesis transforms a formal specification into an efficient algorithm to solve a problem. Algorithm synthesis in Specware combines the formal specification of a problem with a high-level algorithm strategy. To derive an efficient algorithm, a developer must define operators that refine the algorithm by combining the generic operators in the algorithm with the details of the problem specification. This derivation requires skill and a deep understanding of the problem and the algorithmic strategy. In this paper we introduce two tactics to ease this process. The tactics serve a similar purpose to tactics used for determining indefinite integrals in calculus, that is suggesting possible ways to attack the problem
Synthesis of fast programs for maximum segment sum problems
It is well-known that a naive algorithm can often be turned into an efficient program by applying appropriate semanticspreserving transformations. This technique has been used to derive programs to solve a variety of maximum-sum programs. One problem with this approach is that each problem variation requires a new set of transformations to be derived. An alternative approach to synthesis combines problem specifications with flexible algorithm theories to derive efficient algorithms. We show how this approach can be implemented in Haskell and applied to solve constraint satisfaction problems. We illustrate this technique by deriving programs for three varieties of maximum-weightsum problem. The derivations of the different programs are similar, and the resulting programs are asymptotically faster in practice than the programs created by transformation. 1
Recommended from our members
Theory and techniques for synthesizing efficient breadth-first search algorithms
textThe development of efficient algorithms to solve a wide variety of
combinatorial and planning problems is a significant achievement in
computer science. Traditionally each algorithm is developed individually,
based on flashes of insight or experience, and then (optionally) verified
for correctness. While computer science has formalized the analysis
and verification of algorithms, the process of algorithm development remains largely ad-hoc. The ad-hoc nature
of algorithm development is especially limiting when developing algorithms
for a family of related problems.
Guided program synthesis is an existing
methodology for systematic development of algorithms. Specific algorithms
are viewed as instances of very general algorithm schemas. For example,
the Global Search schema generalizes traditional branch-and-bound
search, and includes both depth-first and breadth-first strategies.
Algorithm development involves systematic specialization of the algorithm
schema based on problem-specific constraints to create efficient algorithms
that are correct by construction, obviating the need for a separate
verification step. Guided program synthesis has been applied to a
wide range of algorithms, but there is still no systematic process
for the synthesis of large search programs such as AI planners.
Our first contribution is the specialization of Global Search to a
class we call Efficient Breadth-First Search (EBFS), by incorporating
dominance relations to constrain the size of the frontier of the search
to be polynomially bounded. Dominance relations allow two search spaces
to be compared to determine whether one dominates the other, thus
allowing the dominated space to be eliminated from the search. We
further show that EBFS is an effective characterization of greedy
algorithms, when the breadth bound is set to one. Surprisingly, the
resulting characterization is more general than the well-known characterization
of greedy algorithms, namely the Greedy Algorithm parametrized over
algebraic structures called greedoids.
Our second contribution is a methodology for systematically deriving
dominance relations, not just for individual problems but for families
of related problems. The techniques are illustrated on numerous well-known
problems. Combining this with the program schema for EBFS results
in efficient greedy algorithms.
Our third contribution is application of the theory and methodology
to the practical problem of synthesizing fast planners. Nearly all
the state-of-the-art planners in the planning literature are heuristic
domain-independent planners. They generally do not scale well and
their space requirements also become quite prohibitive.
Planners such as TLPlan that incorporate domain-specific information
in the form of control rules are orders of magnitude faster. However,
devising the control rules is labor-intensive task and requires domain
expertise and insight. The correctness of the rules is also not guaranteed.
We introduce a method by which domain-specific dominance relations
can be systematically derived, which can then be turned into control
rules, and demonstrate the method on a planning problem (Logistics).Computer Science